/**
 * @fileOverview 项目初始化
 * @author bian17888
 */
(function() {

  'use strict';

  /**
   * 初始化 :
   * 包含 库文件, 初始化视频插件, 验证插件, 顶部导航等
   * @module common/init
   */
  define(['jquery', 'underscore', 'validate', 'jquery.ui'], function($, _) {

    init();

    /**
     * @func init
     * @desc 初始化页面, 加载所需框架 + 各配置参数
     */
    function init() {
      // jquery validate 配置参数
      initValidate();
      initUltip();
      initTableStyle();
      initTobNav();
      initPopup();
      initTipPopup();
      //initMediaElement();
    }

    /**
     * @func initValidate
     * @desc 初始化 jQuery validate 组件
     */
    function initValidate() {
      jQuery.extend(jQuery.validator.messages, {
        required: "必须填写",
        remote: "请修正此栏位",
        minlength: jQuery.validator.format("最少{0}个字符"),
        maxlength: jQuery.validator.format("最多{0}个字符"),
        rangelength: jQuery.validator.format("请输入长度为 {0} 至 {1} 之间的字符"),
        min: jQuery.validator.format("请输入不小于 {0} 的数值"),
        max: jQuery.validator.format("请输入不大于 {0} 的数值"),
        range: jQuery.validator.format("请输入 {0} 至 {1} 之间的数值"),
        email: "请输入有效的电子邮件",
        url: "请输入有效的网址",
        date: "请输入有效的日期",
        dateISO: "请输入有效的日期 (YYYY-MM-DD)",
        number: "请输入正确的数字",
        digits: "只可输入数字",
        creditcard: "请输入有效的信用卡号码",
        equalTo: "两次输入密码不一致",
        extension: "请输入有效的后缀"
      });

      // 密码格式验证
      jQuery.validator.addMethod("isPassword", function(value, element) {
        var password = /((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})/;
        return this.optional(element) || (password.test(value));
      }, "必须包含大小写字母和数字, 长度6-20");

    }

    /**
     * @func initUltip
     * @desc 初始化, 首页顶部导航 + tob页面, 鼠标滑过的 tip 浮层
     */
    function initUltip() {
      var $ulWrap = $('.ul-tip-wrap'),
        $liWrap = $('.ul-tip-wrap > li'),
        $ul = $ulWrap.find('.ul-tip');

      $liWrap.hover(
        function(){
          $(this).find('.ul-tip').show();
        },function(){
          $(this).find('.ul-tip').hide();
        })

    }

    /**
     * @func initTableStyle
     * @desc 通过jquery, 解决 css3选择器不兼容 ie 问题
     */
    function initTableStyle() {
      var $table = $('.m-table,.m-table-sell').find('table');
      // 最后一行 tr, 去除 border-bottom
      $table.find('tr:last').find('td').css('border-bottom','none');
      // b32_check_order.html : 展开编辑 tr 选中状态
      $('tr.edit-tr-wrap').find('td').eq(0).css('border-left','4px solid #ff9b42');
    }

    /**
     * @func initTobNav
     * @desc 初始化 tob 页面左侧导航
     */
    function initTobNav() {
      $('.level1 > li.close').click(function(){
        var $this = $(this),
            className = $this.attr('class');
        if (className === 'open') {
          $this.removeClass('open');
          $this.addClass('close');
        } else {
          $this.removeClass('close');
          $this.addClass('open');
        }
      })
    }

    /**
     * @func initPopup
     * @desc 初始化 弹窗
     */
    function initPopup() {
      $('.m-popup .m-popup-top-btn').click(function() {
        $(this).closest('.m-popup').hide();
      })
    }

    /**
     * @func initTipPopup
     * @desc 初始化 弹窗
     */
    function initTipPopup() {
      $('.icon-info').tooltip();
    }

  });

})();